<template>
  <section id="TableCpn-Cpn">
    <Table :columns="columns" :data="data" :highlight-row="highlightRow" :max-height="maxHeight" :no-data-text="noDataText" @on-selection-change="selectionChangeFun" @on-select-all="selectAllFun" border ></Table>
    <Page class='page' v-if="showPage" :total="total" :current="current" :page-size="pageSize" :show-total="showTotal" @on-change="changePageFun" @om-page-size-change="pageSizeChangeFun"></Page>
  </section>
</template>

<script>
export default {
  data () {
    return {
    }
  },
  props: {
    // `````````````````table表格部分
    // 表格字段
    columns: {
      type: Array,
      require: true
    },
    // 表格数据
    data: {
      type: Array,
      default: function () {
        return []
      }
    },
    // 表格高读
    maxHeight: {
      type: String,
      default: "300"
    },
    // 是否高亮显示
    highlightRow: {
      type: Boolean,
      default: true
    },
    // 无数据默认文案
    noDataText: {
      type: String,
      default: "暂无数据"
    },

    // ``````````````````page分页器部分
    // 是否显示分页
    showPage: {
      type: Boolean,
      default: true
    },
    // 是否显示总数
    showTotal: {
      type: Boolean,
      default: true
    },
    // 总数
    total: {
      type: Number,
      default: 0
    },
    // 当前页码
    current: {
      type: Number,
      default: 1
    },
    // 每页条数
    pageSize: {
      type: Number,
      default: 10
    }
  },
  created () {

  },
  methods: {
    // 全选
    selectAllFun(val) {
      this.$emit("on-select-all", val)
    },
    // 单选
    selectionChangeFun(val) {
      this.$emit("on-selection-change", val)
    },

    // 切换页码
    changePageFun(val) {
      this.$emit("on-change", val)
    },
    // 切换每页条数
    pageSizeChangeFun(val) {
      this.$emit("on-page-size-change", val)
    }
  }
}
</script>

<style lang="less" scoped>
#TableCpn-Cpn {
  margin-top: 10px;
  .page {
    display: flex;
    justify-content: flex-end;
    margin-top: 10px;
  }
}
</style>
